LMD-Tools ReadMe (6.12)
Date: 22-Sep-2002
(© by LMD Innovative, (http://www.lmd.de or http://www.lmdtools.com)
Contents
General
Installation
Delphi / C++ Builder
Components Overview (complete)
Components Overview (New in LMD-Tools 6.0)
Updating existing projects created with LMD-Tools
4.X or former versions
Updating existing projects created with ShellPack 1.0 /
RichPack 1.0
LMD ParsePack/TextPack HTML-Support
Redistributable Packages
History
Troubleshooting Notes
Reporting Problems &
Newsgroups
Welcome to version 6 of LMD-Tools. The latest
release of this component suite provides more than 300 components, besides that
many existing components were improved or new objects added. Please read the
History list to get a brief overview about latest changes.
Please use the new feedback form at
www.lmdsupport.com or newsgroups at news.lmdtools.com for suggestions or bug
reports. Please make sure that you provide ALL required
information listed in Reporting Problems section.
Otherwise it could be very time-intensive trying to reproduce your problem,
because sometimes problems occur on one of the various possible platforms only.
WebPack
Compiled version of WebPack uses WinInet interface. The sourcecode version
provides compiler switches to allow versions based on Indy 8 or 9. Check Source
ReadMe for instructions how to change compiler switches in
lmdwebcmps.inc.
C++ Builder Versions - Please read!
ShellPack and WebPack require special header files, which must be added manually.
TextPack and WebPack components require ParsePack LibPath (add path to ParsePack
files in the project options). Check Troubleshooting notes for description.
Location of support files
If helpfiles were installed automatically you can use them in the IDE as
known from the Delphi/CBuilder helpfiles. Otherwise all helpfiles can be found
in the \help
folder below the LMD-Tools installation directory. All information files can be
found in the \info
directory. Interface files can be found in the
\source
directory (if installation of interface files was switched on in Installer).
[Top]
Updating existing projects created with LMD-Tools V4.X or former versions
Delphi
In spite of drasting changes in the unit structure
updating your projects to the new version should be rather straight forward:
User of previous LMD-Tools releases have to load and save each form of their
project. The easiest way to do this is to press F9 (compile) until the project
starts. The IDE will detect missing unit references and add them
automatically. In the worst case additional units must be added manually to the
uses clause of an unit (if type or method was moved to another unit, which is
not added by the Delphi IDE automatically). If you get an unknown identifier,
error simply check the helpfile where the corresponding type/method is now
located and add the unit to the uses clause.
CBuilder
In spite of drasting changes in the unit structure
updating your projects to the new version should be rather straight forward (though
a little bit more work than with Delphi versions):
User of previous LMD-Tools releases have to load and save each form of their
project. The easiest way to do this is to press F9 (compile) until the project
starts. The CBuilder IDE will detect missing unit references and add them
automatically. In the worst case additional units must be added manually to the
uses clause of an unit (if type or method was moved to another unit, which is
not added by the CBuilder IDE automatically). If you get an unknown identifier,
error simply check the helpfile where the corresponding type/method is now
located and add the unit to the uses clause. In addition to Delphi projects a
few includes in the header file of an unit must be removed manually. The
following files are no longer used in CBuilder versions of LMD-Tools 5 and can
be simply removed from your project:
lmdmms.hpp, lmdcctrl.hpp, lmdcombo.hpp,
lmdcompo.hpp, lmdcompo.hpp, lmddbcta.hpp, lmdeditb.hpp, Lmdeditc.hpp,
lmdeditm.hpp, lmdgroup.hpp, LMDMemoC.hpp, lmdrctrl.hpp, lmdextca.hpp,
lmdextcs.hpp, lmdnonvs.hpp, lmdshapa.hpp, lmdstdcS.hpp, lmdctrla.hpp,
lmddlgs.hpp, lmdbredt.hpp
[Top]
Updating existing projects created with ShellPack 1.0 /
RichPack 1.0
Both ShellPack and RichPack packages were drastically changed. Especially
Shellpack controls need manual adaption of code, because internal structure was
extremly improved to a much better objecte oriented design.
Before you update any projects to the new version,
please backup them.
ShellPack
ShellPack changes affect usually mainly main components (TLMDShellFolder,
TLMDShellTree, TLMDShellList and TLMDShellComboBox). Dialog components remained
almost unchanged, except that ExecuteEnh method was removed and replaced by the
Execute method alone (which supports optional HWND parameter now).
Form and Units
All major components moved to new units (lmdshfolder.pas,
lmdshtree.pas, lmdshlist.pas, and lmdshcombo.pas).
To update uses clause load and save each form of the project The IDE will detect missing unit references and add them
automatically. If property settings were not found after loading the form,
simply press "Ignore all". Before you can start project IDE will show up not
found units like lmdshctl.pas,
lmdshiedlg, lmdshitm or lmdshfld.pas. Simply
remy remove these unit references, these files are no longer required.
Manual code changes
The main class of ShellPack 1 to access single items was
TLMDShellFolderItem.
Because it was obviously not very easy to understand how this object worked,
this class was completely redesigned and is now called
TLMDShellItem.
Use this base class to request all important data from a file system object,
regardless of which kind it is. To get access to individial items for each main
visual class a wrapper class exists (TLMDShellListItem,
TLMDShellTreeItem,
TLMDShellComboItem),
which allows access to all properties and methods of TLMDShellItem by their
ShellItem
property. Examples:
TLMDShellList
if Assigned(shList.Selected) then
Showmessage(TLMDShellListItem(shList.Selected).ShellItem.PathName));
TLMDShellTree
if Assigned(shTree.Selected) then
Showmessage(TLMDShellTreeItem(shTree.Selected).ShellItem.PathName));
In both cases the full PathName of the selected object is displayed. Please note
how the Selected object (a default property of TListView and TTreeView) is
typecasted to TLMDShellListItem or TLMDShellTreeItem.
Note:
To make full use of ShellPack 2.0 on Win95 systems, the common controls update
needs to be installed on the target system. ShelLPack 2.0 requires at least the
common controls update which was shipped with Internet Explorer 4.0. The common
control update is a freely distributable and can be found on your Delphi/CBuilder
CD in the Info\Extras\Comctl
folder.
Note (C++ Builder only):
If your application uses ShellPack components, the following line
must be added in one of the units which contain ShellPack components (e.g. main
unit of your application):
#include <LMDShellBCBSupport.hpp>
If this header file is not included, an E2076 linker error will be generated.
RichPack
Main changes affect the TLMDRichEdit class. E.g. the Selection property was
removed and replaced by a SeAttributes object. On customer request our
proprietary interface was changed much more common interface, e.g. Paragraph
object was designed based on the VCL TParagraph definition extending the
functionality with the unique LMDRichEdit features.
Form and Units
All major components moved to new units. To update uses clause load and save
each form of the project The IDE will detect missing unit references and add them
automatically. If property settings were not found after loading the form,
simply press "Ignore all". Before you can start project IDE will show up not
found units. Simply remove these unit references, these files are no longer
required.
Note:
If no default printer is installed on the system, start of applications using
RichLabel components will be delayed.
Note (C++ Builder only):
After recompiling LMD RichPack packages, you might receive errors regarding
CHARFORMAT2A types
if you want to start an application using TLMDRichEdit components. Workaround:
Simply enter in the header files Richedit::
before
CHARFORMAT2A types
(where compiler requires this, usually about three times). Example:
Change line...
void __fastcall GetAttributes(CHARFORMAT2A
&Format);
..to...
void __fastcall GetAttributes(Richedit::CHARFORMAT2A
&Format);
[Top]
© 2002 by LMD Innovative Germany
All other trademarks are acknowledged.